package com.caifu.service;

import com.caifu.pojo.CDUser;
import com.caifu.pojo.CDevice;
import com.caifu.pojo.COrgDept;
import com.caifu.pojo.SysUser;
import com.caifu.vo.DeviceVo;
import com.github.pagehelper.PageInfo;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * ClassName: UserDeviceService.java
 *
 * @author: tianwenwen
 * createTime: 2020年12月14日 14:25:19
 **/
public interface UserDeviceService {

    /**
     * 获取机构设备列表 分页
     *
     * @param name
     * @param status
     * @param currentPage
     * @param pageSize
     * @return
     */
    PageInfo<DeviceVo> getDeviceList(SysUser user, String name, String status, Integer currentPage, Integer pageSize);

    /**
     * 根据id获取设备详情
     *
     * @param id
     * @return
     */
    CDevice getDeviceById(String id);

    /**
     * 根据部门id获取设备名称
     *
     * @param id
     * @return
     */
    List<String> getDeviceNameByDeptId(Integer id);

    /**
     * 根据orgId获取可选部门列表
     *
     * @param relativeId
     * @return
     */
    Map<String, Object> getOptionalDept(Integer relativeId);

    /**
     * 根据orgId获取已选部门列表
     *
     * @param relativeId
     * @return
     */
    List<COrgDept> getSelectedDept(String deviceId, Integer relativeId);

    /**
     * 获取机构所有设备
     * @param user
     * @return
     */
    List<CDevice> getDeviceListAll(SysUser user);

    /**
     *
     * @return
     * @throws Exception
     */
    Map listDeviceUser() throws Exception;

    /**
     *
     * @param sn
     * @param code
     * @param date
     * @return
     */
    Map checkGuestCode(String sn, String code, String date);

    /**
     *
     * @return
     * @throws Exception
     */
    List<CDevice> listDevive() throws Exception;
}
